File generator
Generate fake in-memory files for varying sizes
This package allows you generate fake in-memory files for varying sizes. The generated file can be used during testing to test the file uploads functionality of your Node server.
- Support for
docx
, xlsx
, pdf
, png
, jpg
, and gif
files. - Passes the magic number file validation.
- The file contents is kept in-memory Buffer. No files are written to the disk.
Installation
Install the package from the npm registry as follows.
npm i @poppinss/file-generator
yarn add @poppinss/file-generator
Usage
Use the exported functions as follows.
import { generatePng } from '@poppinss/file-generator'
const {
contents,
size,
mime,
name
} = await generatePng('1mb')
contents
is a buffer.size
is the size of the file in bytes.mime
is the mime type for the generated file.name
is a randomly assigned unique name to the file.
You can also define a custom file name as the second argument.
await generatePng('1mb', 'avatar.png')
Usage with form-data
You can pass the generated content to an instance of form data as follows.
import FormData from 'form-data'
const form = new FormData()
const file = await generatePng('1mb')
form.append('avatar', file.contents, {
filename: file.name,
contentType: file.mime,
knownLength: file.size,
})
Points to note
- Only the first few bytes of the files are valid and rest of the bytes are empty. Therefore, further processing of the files will not work. For example: If you open the PDF file to read its content on the server, then using this package is not the right choice.
- Every file type has minimum bytes and you cannot generate files smaller than that. This is done to keep the initial bytes valid and them pass the standard validation rules.